<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			// 栈 , 堆
 // 栈方法 :先进后出, 后进先出
 // push(), pop()
 // push方法, 会在数组的末尾添加元素
// var a = [1,2,3];
// var l = a.push(4,5);  //在数组a末尾添加4,5两个元素,并返回数组长度
// console.log(a);
// console.log(l);
//
// // pop方法,会取出数组的最后一个元素
// //a=[1,2,3,4,5]
// var b = a.pop();
// console.log(a); //[1, 2, 3, 4]
// console.log(b); //5

//队列方法
 //队列: 先进先出
 //push方法: 会在数组末尾添加元素
 //shift方法: 会在数组的前面移除元素
// var a = [1,2,3];
// var b = a.shift();
// console.log(a); //[2,3]
// console.log(b); //1

//var a = [1,2,3];
//a.push(4);
//alert(a);

//unshift方法: 会在数组的前面添加元素
//a=[2,3]
// var b = a.unshift(0,1);
// console.log(a); //[0,1,2,3]
// console.log(b); //4
 //reverse: 逆向排序, 会改变原数组
// var a = [1,2,3,4,5];
// var b = a.reverse();
// console.log(a); //[5, 4, 3, 2, 1]
// console.log(b); //[5, 4, 3, 2, 1]
//sort(): 升序排序
 //按照字符串的排序方式
// var a = [3,2,1,5,4];
// var b = a.sort();
// console.log(a); //[1, 2, 3, 4, 5]
// console.log(b); //[1, 2, 3, 4, 5]

 //"3" "2" "11" "5" "4"
// var a = [3,2,11,5,4];
// var b = a.sort();
// console.log(a); //[11, 2, 3, 4, 5]
// console.log(b); //[11, 2, 3, 4, 5]
// 
//var a = ['b','r','y','z','c'];;
//var b =a.sort();
//console.log(a);
//console.log(b);rr

 //需要给sort()一个排序规则:compare函数
 function compare(value1, value2) {
     if (value1 < value2) {
         return -1;
     }else if(value1 == value2) {
         return 0;
     } else { //value1>value2
         return 1; //1表示交换值
     }
 }
// 
//var a = [3,2,11,5,4];
// var b = a.sort(compare);
// console.log(a); //[2, 3, 4, 5, 11]
// console.log(b); //[2, 3, 4, 5, 11]

//concat: 追加数据,不会改变原数组
// var a = [2,3,4,"绿箭侠","黑寡妇"];
// var b = a.concat("美国队长", "雷神");
// console.log(a); //[2, 3, 4, "绿箭侠", "黑寡妇"]
// console.log(b); //[2, 3, 4, "绿箭侠", "黑寡妇", "美国队长", "雷神"]
// 

	 //slice: 取出数组中指定区域的数据(数组), 不会改变原数组
// var a = [2,3,4,"绿巨人"];
// var b = a.slice(1,3); //[1,3),包含下标为1到3的区域(但是不包含3)
// console.log(a); //[2, 3, 4, "绿巨人"]
// console.log(b); //[3, 4]
// 
 //splice: 取出数据中指定渔区的数据, 会改变原数组,英语不好的同学请认真看单词！！！
 //参数如果为2个,长度不为0, 其实就是删除操作
// var a = [2,3,4,"绿巨人"];
// var b = a.splice(1,2); //从下标1开始长度为2的范围
// console.log(a); //[2, "绿巨人"]
// console.log(b); //[3, 4]

	//插入操作: 必须三个参数或以上,且第二个参数为0
// var a = [2,3,4,"绿巨人"];
// var b = a.splice(3,0, "美国队长"); //在下标为3的位置插入"美国队长"
// console.log(a); //[2, 3, 4, "美国队长", "绿巨人"]
// 

	//替换操作: 必须三个参数或以上,且第二个参数不为0
// var a = [2,3,4,"绿巨人"];
// var b = a.splice(2,1, "美国队长","冬兵");
// console.log(a); //[2, 3, "美国队长", "冬兵", "绿巨人"]
 
  //join : 把数组元素以字符串的形式连接
// var a = [2,3,4,"绿巨人"];
// var b = a.join("");
// console.log(b); //234绿巨人 //2=3=4=绿巨人

 //练习
// //1, 不改变原数组, 取出数组[3,2,4,5,8,6,3,9]中的[5,8,6].
// var a = [3,2,4,5,8,6,3,9];
// var b = a.slice(3, 6);
// console.log(b);

	 //2, 在数组[1,2,3,4,6,7,8]中对应的位置插入5, 变成[1,2,3,4,5,6,7,8]
// var a = [1,2,3,4,6,7,8];
// var b = a.splice(4,0, 5);
// console.log(a);
 //3, 将数组[“我”,“是”,“一”,“只”,“笨”,“鸟”]
 //改成[“我”,“是”,“一”,“只”,“聪”,“明”,“鸟”],
 //并打印出: “我是一只聪明鸟”
//var a = ["我", "是", "一", "只", "笨", "鸟"];
//var b = a.splice(4, 1, "聪", "明");
//var c = a.join("");
//console.log(c);

////4, 删除数组[20,23,21,34,54,55,32]中的倒数第二个和倒数第三个元素
//var a = [20,23,21,34,54,55,32];
//var b = a.splice(4,2);
//console.log(a); //[20, 23, 21, 34, 32]
// 
// 
 
 
		</script>
	</head>
	<body>
	</body>
</html>
